include ../Makefile.inc

SUB_MODULES = $(OBJ_DIR)/io_loops.o $(OBJ_DIR)/halfproxy_auth.o $(OBJ_DIR)/md5.o $(OBJ_DIR)/daemon.o
SUB_HEADERS = io_loops.h constants.h halfproxy_auth.h daemon.h

all : $(BIN_DIR)/halfproxy $(BIN_DIR)/halfproxy_bouncer

$(BIN_DIR)/halfproxy : $(OBJ_DIR)/main.o $(SUB_MODULES)
	$(CXX) $^ $(LIBS) -o $@

$(BIN_DIR)/halfproxy_bouncer : $(OBJ_DIR)/bouncer.o $(SUB_MODULES)
	$(CXX) $^ $(LIBS) -o $@

$(OBJ_DIR)/main.o : main.cpp $(SUB_HEADERS) $(TOOLS_LIB_FILE)
	-mkdir -p $(OBJ_DIR)
	$(CXX) $(INCLUDES) $< -c -o $@

$(OBJ_DIR)/bouncer.o : bouncer.cpp $(SUB_HEADERS) $(TOOLS_LIB_FILE)
	-mkdir -p $(OBJ_DIR)
	$(CXX) $(INCLUDES) $< -c -o $@

$(OBJ_DIR)/%.o : %.cpp %.h constants.h $(TOOLS_LIB_FILE)
	-mkdir -p $(OBJ_DIR)
	$(CXX) $(INCLUDES) $< -c -o $@

$(OBJ_DIR)/%.o : %.c %.h constants.h $(TOOLS_LIB_FILE)
	-mkdir -p $(OBJ_DIR)
	$(CXX) $(INCLUDES) $< -c -o $@

$(TOOLS_LIB_FILE) : force_look
	cd ..; $(MAKE) lib

clean:
	rm -f $(OBJ_DIR)/*
	rm -f $(BIN_DIR)/halfproxy
	rm -f $(BIN_DIR)/halfproxy_bouncer

force_look:
	true
